package com.meituan.sdk.model.ddzh.yuding.pricelistBookruleSync;

import com.meituan.sdk.annotations.ApiMeta;
import java.util.List;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;
import javax.validation.constraints.NotEmpty;

/**
* 价目表商品预定规则同步
* This file was automatically generated.
*/
@ApiMeta(
    path = "/ddzh/yuding/pricelist/bookrule/sync",
    businessId = 58,
    apiVersion = "10029",
    apiName = "pricelist_bookrule_sync",
    needAuth = true
)
public class PricelistBookruleSyncRequest implements MeituanRequest<PricelistBookruleSyncResponse> {
    /**
    * <p data-diff-id="ct-diff-id-c4b6f380-a8b7-4873-96b7-1097c19f4e71">业务类型：</p><p data-diff-id="ct-diff-id-c15d89a5-b7f3-4efa-ade7-80b98be0a876">4-预定</p>
    */
    @NotNull(message = "bizType不能为空")
    @SerializedName("bizType")
    private Integer bizType;
    /**
    * <p data-diff-id="ct-diff-id-22a9f277-bd7f-4f56-9123-188e0ea227e9">商品分类：</p><p data-diff-id="ct-diff-id-503af04d-649a-45c4-b877-6a3466aa1904"><span style="color: rgba(0, 0, 0, 0.87)">812000251-棋牌行业</span></p>
    */
    @NotNull(message = "spuType不能为空")
    @SerializedName("spuType")
    private Long spuType;
    /**
    * <p data-diff-id="ct-diff-id-50a95b7f-8fdd-40fa-8a33-5383b1220b18">需要同步的门店预订规则属性</p>
    */
    @NotEmpty(message = "createRuleContents不能为空")
    @SerializedName("createRuleContents")
    private List<RuleContent> createRuleContents;

    public Integer getBizType() {
        return bizType;
    }
    public void setBizType(Integer bizType) {
        this.bizType = bizType;
    }
    public Long getSpuType() {
        return spuType;
    }
    public void setSpuType(Long spuType) {
        this.spuType = spuType;
    }
    public List<RuleContent> getCreateRuleContents() {
        return createRuleContents;
    }
    public void setCreateRuleContents(List<RuleContent> createRuleContents) {
        this.createRuleContents = createRuleContents;
    }


    @Override
    public MeituanResponse<PricelistBookruleSyncResponse> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<PricelistBookruleSyncResponse>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "PricelistBookruleSyncRequest{" + "bizType=" + bizType + "," + "spuType=" + spuType + "," + "createRuleContents=" + createRuleContents + "}";
    }
}
